package com.wxgo.dao;

import java.util.List;

import com.wxgo.common.model.Module;
import com.wxgo.dao.base.BaseDao;

public class ModuleDao extends BaseDao {

	/**
	 * 
	 * @param pmid
	 *            上级菜单id id=0 表示顶级菜单
	 */
	public List<Module> findModuleByParentId(Integer pmid) {
		return find("select m.id,m.name,m.url,m.pmid,m.ts from module m where m.pmid=?", pmid);
	}

	/**
	 * 根据角色id查询用户能看到的菜单
	 * 
	 * @param Integer
	 *            pmid 代表是否为模块，如果为0 则是查询顶级模块,如果为1表示下级模块
	 */
	public List<Module> findChildByRole(Integer pmid, Integer rid) {
		return find(
				"select m.id,m.name,m.url,m.pmid,m.ts from power p left join module m on m.id = p.mid where p.rid=? and p.pmid=?",
				rid, pmid);
	}

	/**
	 * 根据角色id查询角色权限
	 * 
	 * @param Integer
	 *            rid 代表是否为模块，如果为0 则是查询顶级模块,如果为1表示下级模块
	 */
	public List<Module> findPowerByRid(Integer rid) {
		return find("select m.id,m.pmid,m.name,m.url,m.ts from power p left join module m on m.id=p.mid where rid=?",rid);
	}

	/**
	 * 查询所有模块
	 * 
	 */
	public List<Module> findAllModule() {
		return find("select id,pmid,name,url,ts from module");
	}

	public Module findById(Integer id) {
		return Module.dao.findById(id);
	}

	public List<Module> find(String sql) {
		return Module.dao.find(sql);
	}

	public List<Module> find(String sql, Object... paras) {
		return Module.dao.find(sql, paras);
	}
}
